In PHP, `isset` ed `empty` sono due funzioni molto utili per la gestione delle variabili, ma hanno scopi diversi e si comportano in maniera distinta. Vediamo in dettaglio le differenze tra queste due funzioni.
`isset`:
La funzione `isset` viene utilizzata per verificare se una variabile è stata definita e non è NULL. In altre parole, `isset` restituisce `true` se la variabile esiste ed ha un valore diverso da NULL; altrimenti, restituisce `false`.
Esempio:
```
$var = “Hello, World!”;
if (isset($var)) {
echo “La variabile \$var è definita e non è NULL.”;
} else {
echo “La variabile \$var non è definita o è NULL.”;
}
```
Se `$var` è definita e contiene un valore (anche un valore vuoto come una stringa vuota `”“`), `isset($var)` restituirà `true`. Tuttavia, se `$var` fosse NULL o non definita affatto, `isset($var)` restituirebbe `false`.
`empty`:
La funzione `empty` verifica se una variabile è vuota. Considera una variabile vuota se è una delle seguenti:
1. NULL
2. FALSE
3. Un array vuoto
4. Una stringa vuota
5. Il numero intero 0
6. Il numero flottante 0.0
7. Una stringa con “0”
In altre parole, `empty` restituisce `true` se la variabile è considerata vuota secondo i criteri sopra elencati. Altrimenti, restituisce `false`.
Esempio:
```
$var = “”;
if (empty($var)) {
echo “La variabile \$var è vuota.”;
} else {
echo “La variabile \$var non è vuota.”;
}
```
In questo esempio, poiché `$var` è una stringa vuota, `empty($var)` restituirà `true`.
Differenze chiave:
1. Esistenza della variabile:
- `isset` richiede che la variabile sia definita e non sia NULL.
- `empty` non richiede che la variabile sia definita; se la variabile non esiste, `empty` tratterà la variabile come vuota e restituirà `true`.
1. Valori trattati come “vuoti”:
- `isset` restituisce `false` solo se la variabile è NULL o non definita.
- `empty` considera una varietà più ampia di valori come “vuoti”, incluse stringhe vuote, numeri zero, e false.
Esempio pratico per chiarire:
```
$var1 = null;
$var2 = “”;
$var3 = “0”;
$var4 = 0;
echo “isset(\$var1) = “ . (isset($var1) ? ‘true’ : ‘false’) . “\n”;
echo “empty(\$var1) = “ . (empty($var1) ? ‘true’ : ‘false’) . “\n”;
echo “isset(\$var2) = “ . (isset($var2) ? ‘true’ : ‘false’) . “\n”;
echo “empty(\$var2) = “ . (empty($var2) ? ‘true’ : ‘false’) . “\n”;
echo “isset(\$var3) = “ . (isset($var3) ? ‘true’ : ‘false’) . “\n”;
echo “empty(\$var3) = “ . (empty($var3) ? ‘true’ : ‘false’) . “\n”;
echo “isset(\$var4) = “ . (isset($var4) ? ‘true’ : ‘false’) . “\n”;
echo “empty(\$var4) = “ . (empty($var4) ? ‘true’ : ‘false’) . “\n”;
```
Output:
```
isset($var1) = false
empty($var1) = true
isset($var2) = true
empty($var2) = true
isset($var3) = true
empty($var3) = true
isset($var4) = true
empty($var4) = true
```
Da questo esempio, possiamo osservare come `isset` e `empty` abbiano comportamenti differenti in base allo stato e al valore della variabile.
Fonti:
1. [Documentazione ufficiale PHP: isset](https://www.php.net/manual/en/function.isset.php)
2. [Documentazione ufficiale PHP: empty](https://www.php.net/manual/en/function.empty.php)
Questi collegamenti portano alla documentazione ufficiale di PHP, dove è possibile trovare ulteriori dettagli e spiegazioni sull’uso di queste funzioni.